The continuing growth of the network technologies, such as the Internet and the IP (Internet Protocol), has been increasing the demands for the transmission/reception of stream data via IP-based networks.
The stream data transmission/reception processing that is executed through networks is applied to the transfer of live or recorded remote learning images and the television broadcasting to personal computers through IP network, for example. Such stream data transmission/reception processing is generally executed through the Internet.
In the communication through the Internet, TCP/IP (Transmission Control Protocol/Internet Protocol) for example, a communication procedure called “pull mode”, which is designed to optimize data transfer, is used. In the pull mode, a sender device and a receiver device communicate each other. If an overflow approaches in buffering data from the sender device by the receiver device, the sender device slows down the transmission speed. If an underflow approaches on the receiver device, the sender device raises the communication speed, thereby maintaining the status necessary for buffering.
Therefore, in this configuration, even if a delay occurs during transfer of stream data in the communication processing between terminals interconnected on a point-to-point basis through the Internet, no fault occurs in the reproduction of stream data between the receiver device and the sender device.
However, because digital A/V broadcast services for example aim at the realtime distribution of stream data, “push mode” communication based on a high-capacity transmission channel and a return channel of requisite minimum capacity (or no return channel) is required. The push mode as used herein denotes a communication mode in which the sender device transmits data to the receiver device in a unilateral way.
Consequently, between the sender device and the receiver device, a jitter occurs between the reproduction time recorded to the time stamp necessary for the reproduction of stream data and the reception time at which the stream data is actually received. As a result, this jitter causes buffer overflow or buffer underflow, which disables the decoding of stream data by a normal decoder.
The sender device and the receiver device have clocks necessary for their operations. Generally, the receiver device (a client computer for example) is not guaranteed for its clock accuracy, so that a mismatch may occur between the reproduction time included in the stream data encoded by the sender device and the reception time at which this stream data is received by the receiver device, thereby making the receiver device unable to correctly decode the stream data.
With a line, such as SONET/SDH (Synchronous Optical Network/Synchronous Digital Hierarchy), with clock synchronization managed, the jitter associated with data transmission is managed almost to zero. However, with ATM (Asynchronous Transfer Mode) with clock kept asynchronous, a cell jitter is generated by the cell exchange for the purpose of avoiding cell collisions. This cell jitter is held in Japan to equal to or less than 1.5 ms and 2 to 3 ms internationally. With the jitters of these levels, PLL (Phase Locked Loop) for example normally employed by the MPEG (Moving Picture Experts Group) decoder may be schemed so as to correct jitters equal to or less than 500 ns specified in MPEG, thereby absorbing line jitters.
However, in the IP-based data transfer, heavy jitters are caused by the LAN (Local Area Network) switch and the IP router connecting the backbone to its terminal devices. As the number of LAN switches and the IP routes increases (or as the number of hops increases), jitters become heavier.
In consideration of these problems, the performance of devices typified by the LAN switch have been enhanced, resulting in the high-speed switching by hardware. However, if a packet collision occurs from a plurality of port inputs, the time in which packets are temporarily stored on a first-in first-out basis causes a jitter.
In addition, if switching includes software processing, the time spent for this processing is not constant, thereby increasing jitters. Consequently, in the case of the realtime transfer of stream data of low delay for example, it is necessary to use lines that are managed to a certain degree. However, because actual jitters are about 10 ms to 1 second, the conventional method based on PLL cannot correct jitters, making it impossible for the receiver device to reproduce the clock of the sender device that encodes stream data. This consequently presents a problem that the receiver device cannot correctly reproduce stream data.